package cn.iocoder.yudao.module.mzt.dal.dataobject.category;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 分类 DO
 *
 * @author Geordie
 */
@TableName("mzt_category")
@KeySequence("mzt_category_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CategoryDO extends BaseDO {

    public static final Long PARENT_ID_ROOT = 0L;

    /**
     * ID
     */
    @TableId
    private Long id;
    /**
     * 父ID
     */
    private Long parentId;
    /**
     * 名称
     */
    private String name;
    /**
     * 类型
     *
     * 枚举 {@link TODO mzt_category_type 对应的类}
     */
    private String type;
    /**
     * 图标
     */
    private String icon;

    /**
     * 事件
     *
     *  枚举 {@link TODO mzt_category_event 对应的类}
     */
    private Integer event;
    /**
     * 封面图
     */
    private String cover;
    /**
     * 状态
     *
     * 枚举 {@link TODO mzt_status 对应的类}
     */
    private Integer status;
    /**
     * 路由地址
     */
    private String path;
    /**
     * 推荐
     *
     * 枚举 {@link TODO mzt_recommend 对应的类}
     */
    private Integer recommend;
    /**
     * 分类按钮类型
     *
     * 枚举 {@link TODO mzt_category_mzt_category_type 对应的类}
     */
    private String categoryType;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 描述
     */
    private String remark;
    /**
     * 文章数量
     */
    private Long articleCount;
    /**
     * 浏览总数
     */
    private Long viewCount;
    /**
     * 点赞总数
     */
    private Long likeCount;
    /**
     * SEO标题
     */
    private String seoTitle;
    /**
     * SEO关键词
     */
    private String seoKeywords;
    /**
     * SEO描述
     */
    private String seoDescription;

    private Integer level;
}
